package proms.net.modelo.dao;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import proms.net.conexao.Conexao;
import proms.net.controle.Seguranca;
import proms.net.modelo.bean.Usuario;

public class UsuarioDAO implements InterfaceUsuarioDAO {

    public UsuarioDAO() {
    }

    public void cadastrarUsuario(Usuario usu) throws SQLException {
        try {
            Connection con = Conexao.conecta();
            PreparedStatement ps;
            String sqlInsert1 = "INSERT INTO usuario (usuario, senha,tipo_usuario,acessototal)"
                    + "VALUES  (?,?,?,?); ";
            ps = con.prepareStatement(sqlInsert1);
            
            ps.setObject(1, usu.getLogin());
            ps.setObject(2, usu.getSenha());
            ps.setObject(3, usu.getTipoUsuario());
            ps.setObject(4, usu.getAcessoTotal());

            ps.executeUpdate();

            ps.close();
        } finally {
            Conexao.desconecta();

        }

    }

    public Usuario login(String login, String senha) throws SQLException {
        Usuario usuario = new Usuario();
        try {
            Connection con = Conexao.conecta();
            PreparedStatement stmt =
                    con.prepareStatement("select * from usuario where usuario = ? and senha = ?");
            stmt.setString(1, login);
            stmt.setString(2, Seguranca.encripta(senha));
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                usuario.setCodUsuario(rs.getInt("cod_usuario"));
                usuario.setLogin(rs.getString("usuario"));
                usuario.setAcessoTotal(rs.getString("acessototal"));
                usuario.setSenha(rs.getString("senha"));
                usuario.setTipoUsuario(rs.getString("tipo_usuario"));
                return usuario;
            }
        } catch (SQLException ex) {
            System.err.println(ex);
        } finally {
            Conexao.desconecta();
        }
        return null;
    }

    public List<Usuario> getListaUsuarios(ResultSet rs) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Usuario login(String login) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Object getUsuario(Integer codigo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
  
}
